<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Динамически изменяемая форма для добавления/редактирования постов и комментариев
 *
 * @package    block_guestbook
 * @copyright  2014 Massa
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

require_once("{$CFG->libdir}/formslib.php");

// Объект формы наследует свойства и методы класса moodleform
class gbook_form extends moodleform {
 
function definition() {

	$mform =& $this->_form;

	// Добавляем элемент: заголовок (динамически изменяемая часть) 
	$mform->addElement('header','displayinfo', get_string('newpost', 'block_guestbook'));

	// Добавляем элемент: текстовая строка
	// Отсекаем лишнее: допускается только текст без "лишних" символов 
	// Добавляем простое правило валидации: требуется наличие содержимого, проверка на "клиенте" 
	$mform->addElement('text', 'name', get_string('nameforpost', 'block_guestbook'));
	$mform->setType('name', PARAM_TEXT);
	$mform->addRule('name', null, 'required', null, 'client');

	// Добавляем элемент: редактор
	// Разрешаем любое содержимое в массиве 
	// Добавляем простое правило валидации: требуется наличие содержимого, проверка на "клиенте" 
	$mform->addElement('editor', 'post', get_string('posttext', 'block_guestbook'));
	$mform->setType('post', PARAM_RAW);
	$mform->addRule('post', null, 'required', null, 'client');

	// Добавляем элементы: скрытые поля типа INT
	$mform->addElement('hidden', 'blockid');
	$mform->setType('blockid', PARAM_INT);
	$mform->addElement('hidden', 'courseid');
	$mform->setType('courseid', PARAM_INT);
	$mform->addElement('hidden', 'id');
	$mform->setType('id', PARAM_INT);
	$mform->addElement('hidden', 'pid');
	$mform->setType('pid', PARAM_INT);

	// Добавляем стандартизованные кнопки типа SUBMIT и CANCEL 
	$this->add_action_buttons();

    }
}
